When you want to install Ubuntu in dual boot with Windows 8, you need to take into account that you can encounter some problems. Today I’ll tell you an anecdote and explain how you can fix the following problem: grub doesn’t start on a Ubuntu 14.04 dual boot with Windows 8.1.
A week ago I installed Ubuntu 14.04, codenamed Trusty Tahr, alongside Windows 8.1 on a friend of mine’s computer. I did not install the available updates upon installation, to make it faster. Everything worked well: UEFI did not cause any trouble, both Ubuntu and Windows started as expected. I then installed the Italian locale packages and postponed the updates.
Today I finally found the time to update the installed packages. Once installed, I restarted the computer in order to apply and test the update. And here comes the surprise: grub didn’t start, the pc booted Windows directly.
We have a problem, but fortunately Windows is not compromised. So, let’s go and fix the problem.
If grub doesn’t start, we can’t access Ubuntu directly. Here’s what you need:
Nothing else? Exactly, that’s it.
The first thing you can do is using Boot Repair to reinstall grub with all the options you need. You can find instructions about how to install and use in the Ubuntu Community Help Wiki.
Most probably the first attempt with Boot Repair didn’t solve the problem. But we are Linux users, so we can find a solution by searching in the Web and with a little bit of luck.
Boot into your live Linux distro (from now on we’re going to call it just “Live”) and open GParted or any other partition manager it has. Look for your Ubuntu system partition and write down somewhere its file name (that in the form /dev/sdxn, in my case /dev/sda7) and its filesystem. We’ll call it /dev/sda7, but keep in mind to change it when you type down the commands.
First things first: chroot into your system to execute the actions needed to fix the issue. Open the terminal, login as root and mount Ubuntu. Replace /dev/sda7 with your partition, and ext4 with the filesystem of your partition.
sudo sucd /mount -t ext4 /dev/sda7 /mntmount -t proc proc /mnt/procmount -t sysfs sys /mnt/sysmount -o bind /dev /mnt/dev
If your /boot directory is on a different partition from your /, you’ll also need to mount that partition with the following command (remember to replace ext4 and /dev/sda2:
mount -t ext4 /dev/sda2 /mnt/boot
Now it’s time to move into the mounted system, which is your Ubuntu installation:
chroot /mnt /bin/bash
If it returns the error chroot: cannot run command '/bin/bash': Exec format error, this usually indicates that you booted with one architecture (e.g. 32bit) and are trying to chroot into another (e.g. x86_64), so you need to use a Live that has the same architecture.
If something went wrong, please report it in a comment below.
Sources:
Photo courtesy of
by is licensed under a .
.